Audio volume control for computer systems

ABSTRACT

A computer system includes an audio chip to generate audio signals at a target volume level to be emitted as audio output by speakers. Also included in the computer system may be a volume control routine to limit the overall volume level of the system. A maximum volume level may be set by a user through interacting with a software routine. The software routine may include password protection, requiring a user to enter a correct password in order to modify the maximum volume level. If the target volume level is above the maximum volume level, then the volume control routine may set the overall volume level of the system at the maximum volume level. Otherwise the volume control routine may set the overall volume level at the target volume level.

This application is a divisional of U.S. patent application Ser. No.09/363,788 filed on Jul. 29, 1999 now U.S. Pat. No. 6,891,955.

BACKGROUND

The invention relates generally to computer systems and moreparticularly to audio features of computer systems.

Audio features are swiftly becoming important in computer systems. Manycomputers have a compact disk (CD) player capable of playing musicalCD's or computer video games. Also, recent innovations in videotechnology have resulted in the advent of digital video disks (DVD's)that may store large amounts of video data including full length motionpictures. DVD players are now being included in some computer systems.Additionally, computer video games are a popular use for computersystems. Each of these technologies utilize the audio features ofcomputer systems. While the audio output of computer video games andCD's, etc. may be interesting and desirable to some computer users,others may not be quite as fond of the array of audio output generatedby computers. In fact, computer system audio output may disturb othersin the vicinity. For example, parents may be irritated by loud soundsgenerated by video games being played by their children on a computer.

Prior art audio systems include physical locks on speakers in an attemptto alleviate the previously mentioned problems. In these prior artsystems, a key may be inserted into a lock on a speaker to change thevolume level of the speaker. Unfortunately, the prior art audio systemsrequire a physical lock having both mechanical and electronic parts tobe included in a speaker. Additionally, the locking mechanism sets thevolume at a certain level and does not allow the level to be raised orlowered without using a physical key. Thus, it would be beneficial toprovide an alternative technique to limit the audio volume of computersystems.

SUMMARY

In one embodiment, the invention provides a method to limit an audiovolume level of a computer system. The method includes obtaining amaximum volume level and receiving a signal having a target volumelevel. If the target volume is greater than the maximum volume level,then the audio volume level is set at the maximum volume level.Otherwise, the audio volume level is set at the target volume level. Inanother embodiment, a program storage device includes instructions toobtain a maximum volume level and receive a signal indicating a targetvolume level. The instructions may also cause a programmable devicecontroller to set an audio volume level at the maximum volume level ifthe target volume level exceeds the maximum volume level. Otherwise, theinstructions may cause the programmable control device to set the audiovolume level at the target volume level. In yet another embodiment, theinvention provides a computer system including a processor, an audiosource adapted to generate audio signals, and a program storage device.A routine is stored on the program storage device that includesinstructions embodying a method to limit an audio volume level of thecomputer system.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an illustrative computer system having a volume controlroutine in accordance with one embodiment of the invention.

FIG. 2 shows a flow diagram for a volume control routine in accordancewith another embodiment of the invention.

DETAILED DESCRIPTION

Referring to FIG. 1, an illustrative computer system 100 may include aprocessor 102 that may be any programmable control device such as ageneral or special purpose microprocessor, including multiplemicroprocessors. The processor 102 may be coupled to a host bridgecircuit 106 by a processor bus 104. The host bridge circuit 106 mayenable the processor 102 to communicate with system memory 108, whichmay be any type of random access memory (RAM). The processor 102 mayalso be coupled to a primary bus 110 through the host bridge circuit106. An illustrative host bridge circuit 106 is the 82443BX Host-to-PCIbridge device from Intel Corporation. An illustrative primary bus 110conforms to the Peripheral Component Interconnect (PCI) specificationand serves as a communication link between various components of thesystem 100 and the processor 102. Also connected to the primary bus 110,may be an audio chip 112 to generate and control audio output from thesystem 100 and a sound card 114 to provide audio signal buffering andamplification. An illustrative audio chip is the CT5880 digitalcontroller by Creative Technology, Ltd.

The system 100 may also include a secondary bus 118, such as an IndustryStandard Architecture (ISA) bus, coupled to the primary bus 110 througha extended bridge circuit 120. An illustrative secondary bus may conformto specifications such as Industry Standard Architecture (ISA), ExtendedIndustry Standard Architecture (EISA), and Low Pin Count (LPC). Anillustrative extended bridge circuit 120 is the 82371AB PIIX4 IDEcontroller from Intel Corporation. The secondary bus 118 may facilitatecommunication between various input/output (I/O) devices, such asparallel and serial ports, and other aspects of the system 100. Speakers124 may be connected to the system 100 through an audio line to emitsounds based on audio signals generated by the audio chip 112 andamplified by the sound card 114. Alternatively, the audio chip 112 maydrive the speakers 124 directly. An interrupt controller 116, such asthe 820931 Input/Output Advanced Programmable Interrupt Controller(IOAPIC) by Intel Corporation, may accept interrupt requests fromvarious devices, such as the audio chip 112, through interrupt requestlines of the primary and secondary buses 110 and 118. The interruptcontroller may deliver interrupt requests to the processor 102 throughan Advanced Programmable Interrupt Controller (APIC) bus 117. In someembodiments, the audio chip 112 may generate an interrupt request toinvoke a volume control routine 130.

The volume control routine 130 may limit the audio volume level based ona maximum volume setting supplied by a user. The volume control routine130 may be stored on a program storage device 132 that is coupled to thesecondary bus 118. The program storage device 132 may be anynon-volatile memory store such as non-volatile random access memory(NVRAM) or read only memory (ROM). Additionally, the volume controlroutine 130 may be stored as an executable file on a mass storage device(not shown) of the system 100 or on a floppy disk.

In accordance with one embodiment of the invention, a maximum volumelevel for the computer system 100 may be supplied by a user, such as aparent. The user may enter a maximum volume level through interactionwith a software routine in order to limit the volume of audio output.For example, if the system 100 utilizes a text-based operating systemsuch as MS-DOS® from Microsoft Corporation, the user may enter a maximumvolume level through a text command. Alternatively, if a windowingenvironment is provided as in a WINDOWS® 95 or 98, or WINDOWS NT®operating system by Microsoft Corporation, a user may access volumecontrols from a volume dialog window. The volume dialog window mayprovide graphical volume controls, including a slider, to adjust thevolume level by using a mouse or other pointer device. The volume dialogwindow may also have a maximum volume setting which is passwordprotected.

In accordance with one embodiment, a user may be required to enter apassword (comprising alphanumeric characters, for example) to modify themaximum volume setting. Any conventional password authenticationalgorithm may be used to verify that a user has entered a correctpassword. The maximum volume setting may be any indication of a maximumvolume level, such as 25 or 50 percent of the volume capacity of thesystem 100. Alternatively, the maximum volume setting may be expressedas a discrete value (e.g., 70 decibels) or in any other appropriate unitof measurement. A user may set a specific value as the maximum volumesetting by entering a value in a text field, selecting a value from alist, or by using a graphical control, such as a slider. An indicationof the maximum volume setting may be stored in a read only and/or hiddendata file on the system 100, or for added security, may be stored in anoperating system registry file or in NVRAM. The operating systemregistry is a central database of configuration information foroperating system and application programs. An illustrative operatingsystem registry is the WINDOWS® Registry which is included in operatingsystems developed by Microsoft Corporation.

Once a maximum volume level has been established, the setting remainslocked at that value until a user again enters a correct password andmodifies the setting. With the maximum volume level set/locked, usersare free to utilize standard system volume controls to lower the overallvolume level or to raise the volume level for the computer system 100 upto the maximum volume setting. In order to raise the volume level of thesystem 100 above the maximum volume setting, a user is prompted to enterthe password used to lock the maximum volume level.

In the event that a user, such as a parent, forgets the password, themaximum volume setting needs to be reset to a default value. The defaultvalue may be 100 percent of the audio volume capacity of the system 100,for example. If the maximum volume setting is stored in a hidden and/orread only data file, then the file may be deleted to reset to thedefault value. In an embodiment where the maximum volume setting isstored in an operating system registry file, a user may delete thatentry in the registry corresponding to the maximum volume level. If,however, the maximum volume setting is stored in NVRAM, a user mayutilize a system's setup routine to restore the maximum volume settingto the default value. Setup routines may, for example, be accessedduring computer system startup operations.

When the maximum volume setting is changed, a software interrupt may begenerated which invokes the volume control routine 130. Referring toFIG. 2, the routine 130 may perform operations necessary to ensure thatonce a maximum volume level is set, audio output from the system 100does not exceed the established maximum volume level. At block 200, thevolume control routine 130 obtains the maximum volume setting describedabove by retrieving the setting from its stored location. The audio chip112 may generate audio signals to be emitted by the speakers at a targetvolume level, shown in block 202. The target volume level corresponds tothe overall volume level of the system which may be controlled by anyuser, as opposed to the password protected maximum volume setting. Atblock 204, the routine 130 compares the target volume to the maximumvolume setting to determine if a modification of the audio signals isnecessary. If the target volume level is lower than or the same as themaximum volume setting at diamond 206, no modification of the audiosignals is necessary. However, if the target volume level is greaterthan the maximum volume setting at diamond 206, routine 130 may modifythe audio signals such that the audio output is emitted at the maximumvolume setting, as shown in block 208.

In one embodiment, the volume control routine 130 may be implemented asa basic input/output system (BIOS) routine that is stored in BIOS readonly memory (ROM). A hardware interrupt may be generated periodically bythe audio chip 112 in order to invoke the routine 130. The audio chip112 may issue an interrupt request to the interrupt controller 116 anytime that a user modifies the overall system volume. The interruptcontroller 116 may deliver the request to the processor 102, which mayrespond by accessing an interrupt vector table to locate a beginningaddress for the routine 130. The processor AA02 executes the volumecontrol routine 130 to determine if audio signals generated by the audiochip AA12 need to be modified in order to correspond to the maximumvolume setting. In one embodiment, the volume control routine 130 may beinvoked during power on self test (POST) operations wherein the maximumvolume setting is retrieved. In order to modify the audio signals, theroutine 130 may issue application programming interface (API) calls tothe audio chip 112. Alternatively, the volume control routine 130 may bea background process that periodically polls audio signals generated bythe audio chip 112 rather than being activated by an interrupt.

In accordance with another embodiment of the invention, the volumecontrol routine 130 may be implemented as an operating system serviceroutine. In this embodiment, the routine 130 may be executed initiallywhen the BIOS loads an operating system into system memory 108.Thereafter when the overall system volume level is modified, aninterrupt is generated in the same manner as described above to invokethe volume control routine 130. Alternatively, the routine 130 mayperiodically poll audio signals as a background process of the operatingsystem to determine if the signals must be modified to correspond to themaximum volume setting. Additionally, the routine 130 may access andmodify audio signal data by calling API operations of the audio chip112.

In yet another embodiment, the audio chip 112 may monitor the audiosignals it generates to determine if the target volume exceeds themaximum volume setting. In this embodiment, the maximum volume settingmay initially be obtained by the audio chip 112 during POST operationsperformed by the BIOS. Thereafter, the audio chip 112 may obtain themaximum volume setting by generating a hardware interrupt when theoverall system volume level is modified.

Computer systems in accordance with the invention benefit users in manyways. One benefit the invention provides is a technique for limiting acomputer systems' audio volume level. Another benefit of the inventionis that a computer system in accordance with the invention providesflexibility by utilizing a software program to set, modify, and passwordprotect a maximum volume level rather than a physical mechanism whichrequires additional mechanical or electronic parts in speakers. Yetanother benefit is that the invention allows a user to raise or loweroverall system volume level as long the chosen level remains at or belowthe maximum volume level.

While the invention has been disclosed with respect to a limited numberof embodiments, numerous modifications and variations will beappreciated by those skilled in the art. It is intended, therefore, thatthe following claims cover all such modifications and variations thatmay fall within the true spirit and scope of the invention.

1. A program storage device, readable by a programmable control device,comprising instructions stored on the program storage device for causingthe programmable control device to: without first changing the audiovolume level to change a first maximum volume level, obtain apredetermined value representing a second maximum volume level, thepredetermined value being supplied by a user; in response to thepredetermined value and a password from the user, modify thepredetermined value to establish the second maximum volume level;receive a signal indicating a target volume level; set the audio volumelevel at the second maximum volume level if the target volume level isabove the second maximum volume level; and if the target volume is belowthe second maximum volume level, set the audio volume level at thetarget volume level.
 2. The program storage device of claim 1, whereinthe predetermined value representing a maximum volume level is suppliedby a user.
 3. The program storage device of claim 1, wherein the programstorage device comprises non-volatile random access memory.
 4. Theprogram storage device of claim 1, wherein the program storage devicecomprises basic input-output system read only memory.
 5. The programstorage device of claim 1, wherein the program storage device comprisesa floppy disk.
 6. The program storage device of claim 1, wherein theinstructions to obtain a predetermined value comprise instructions toretrieve a value from non-volatile random access memory.
 7. The programstorage device of claim 1, wherein the instructions to obtain apredetermined value comprise instructions to retrieve a value from astored data file.
 8. The program storage device of claim 1, wherein theinstructions to receive a signal comprise instructions to obtain asignal from an audio chip adapted to drive a speaker, the signalindicating a target volume level.
 9. The program storage device of claim1, wherein the instructions to receive a signal comprise instructions toobtain a signal from an audio chip, the signal indicating a targetvolume level, wherein the audio chip is adapted to provide the signal toan audio card to be amplified.